﻿//注意:32位需要属性设置调用约定为:stdcall,64调试/发布默认:fastcall,32调试/发布默认:cdecl
我的子窗口 子窗口
列表框类 列表框1
树型框类 树形框1
超级列表框类 超级列表框1
对话框类 对话框1

函数 整型 通用事件_鼠标位置移动(HWND hWnd, short 横坐标, short 纵坐标, 整型 功能键状态)
	调试输出(#当前函数, hWnd, 横坐标)
	返回 0
函数 整型 按钮_事件被单击(HWND hWnd, 整型 ID)
	如果 (hWnd == 按钮1[3].取窗口句柄())
		子窗口.创建子窗口(main.取窗口句柄())
	否则 (hWnd == 按钮1[0].取窗口句柄())
		按钮1[0].信息框("我是信息框啊", 0)
	否则 (hWnd == 按钮1[1].取窗口句柄())
		颜色对话框类 颜色
		颜色.初始化()
		颜色.打开(hWnd)
	否则 (ID == 按钮1[4].取控件ID())
		对话框1.创建自资源(main.取窗口句柄(), IDD_启动窗口)
		选择夹2.绑定(对话框1.取窗口句柄(), IDC_选项卡1)
		按钮3.绑定(对话框1.取窗口句柄(), IDC_退出)
		按钮3.事件_被单击(注册事件C_取地址(按钮_事件被单击))
		子夹面板[0].创建自资源(选择夹2.取窗口句柄(), IDD_面板1)
		子夹面板[1].创建自资源(选择夹2.取窗口句柄(), IDD_面板2)
		选择夹2.添加子夹(子夹面板[0], "第一个子夹")
		选择夹2.取子夹数()
		选择夹2.添加子夹(子夹面板[1], "第二个子夹")
		选择夹2.取子夹数()
	
		//对话框1.创建(main.取窗口句柄(), "我是对话框", 黑月坐标(0, 0), 黑月坐标(500, 300), 窗口风格_可视 | 窗口风格_默认)
	否则 (hWnd == 按钮3.取窗口句柄())
		//按钮3.信息框("按钮3被点击了", 0)
		文件对话框类 dd
		dd.初始化(文件对话框_允许多选, "易团雪", "的", "所有文件|*.*",, "D:\\")
		如果 (dd.打开())
			调试输出(dd.取文件名())
	返回 0
选择夹类 选择夹2
按钮类 按钮3
面板类 子夹面板[2]
月历类 月历类1
日期框类 日期框1
工具提示类 工具
影像框类 影像框1
图像组合框类 图像组合框
图片组类 图片组
函数 整型 编辑框事件_内容被改变(HWND hWnd, 整型 ID)
	调试输出(#当前函数, hWnd, ID)
	返回 0
函数 整型 编辑框事件_按下某健(HWND hWnd, 整型 键代码, 整型 功能键状态)
	调试输出(#当前函数, hWnd, 键代码)
	返回 0
函数 整型 超链接框1_事件_被单击(HWND hWnd, 整型 链接索引, 字符型 *URL, 整型 ID)
	调试输出(文本组合("索引：", 链接索引), 文本组合("URL：", URL), ID)
	返回 0
函数 整型 选择夹1_创建完毕事件(HWND hWnd)
	如果 (hWnd == 面板[0].取窗口句柄())
		列表框1.创建(hWnd, "列表框1", 黑月坐标(20, 10), 黑月坐标(220, 220))
		计次循环 (整型 i = 0; 30)
			列表框1.加入项目("炫彩项目" + 到文本(i + 1))
		树形框1.创建(hWnd, "列表框1", 黑月坐标(260, 10), 黑月坐标(220, 220),, 树型框_显示连线 | 树型框_显示根部线 | 树型框_显示加减框 | 树型框_始终显示选择项)
		长整型 hRoot = 树形框1.加入项目(, "Root1")
		长整型 hRoot1 = 树形框1.加入项目(hRoot, "Root2")
		长整型 hRoot2 = 树形框1.加入项目(, "Root3")
		树形框1.扩展(hRoot)
		月历类1.创建(面板[0], "", 黑月坐标(20, 240), 黑月坐标(220, 180))
		日期框1.创建(hWnd, "", 黑月坐标(260, 240), 黑月坐标(220, 30))
		影像框1.创建(hWnd, "", 黑月坐标(260, 280), 黑月坐标(220, 135))
		影像框1.打开("clock.avi")
		影像框1.播放()
		文件类  文件
		文件.打开("图片组.eil")
		字节集  data = 文件.读取到字节集()
		图片组.创建自字节集(data, 真)
		图像组合框.创建(hWnd, "", 黑月坐标(20, 430), 黑月坐标(150, 200))
		图像组合框.置图片组(图片组)
		计次循环 (整型 i = 0; 20)
			图像组合框.插入项目(, "图像组合框项目" + 到文本(i), i % 5, i % 5)  // 一 定要设置选中图片索引
		图像组合框.置现行选中项 (0)

	
	否则 (hWnd == 面板[1].取窗口句柄())
		超级列表框1.创建(hWnd, "选择夹标签文本", 黑月坐标(10, 10), 黑月坐标(475, 490),,\
		超列_报表列表 | 超列_单一选择 | 超列_始终显示选择项 | 超列_自动排列)
		超级列表框1.添加超列扩展风格(超列扩展_双缓冲 | 超列扩展_显示表格线 | 超列扩展_整行选择 | 超列扩展_标题工具提示)
		超级列表框1.插入列(, "序号", 50)
		超级列表框1.插入列(, "第2列", 80)
		超级列表框1.插入列(, "第3列", 70)
		超级列表框1.插入列(, "第4列", 100)
		超级列表框1.插入列(, "第5列", 100)
		超级列表框1.插入列(, "第6列", 150)
		计次循环 (整型 i = 0; 300)
			整型 index = 超级列表框1.插入表项(, 到文本(i))
			超级列表框1.置标题(index, 1, "炫彩1")
			超级列表框1.置标题(index, 2, "炫彩牛逼1")
			超级列表框1.置标题(index, 3, "炫彩牛逼1(7)")
			超级列表框1.置标题(index, 4, "炫彩牛逼1(6)")
			超级列表框1.置标题(index, 5, "炫彩牛逼()")

	返回 0

函数 整型 主窗口_创建完毕事件(HWND hWnd)
	按钮1[0].事件_被单击(注册事件C_取地址(按钮_事件被单击))
	按钮1[0].创建(hWnd, "确定(&S)", 黑月坐标(10, 20), 黑月坐标(80, 30))
	按钮1[1].创建(hWnd, "颜色框(&C)", 黑月坐标(100, 20), 黑月坐标(80, 30))
	按钮1[1].事件_被单击(注册事件C_取地址(按钮_事件被单击))
	按钮1[2].创建(hWnd, "默认按钮", 黑月坐标(190, 20), 黑月坐标(80, 30))
	按钮1[2].默认按钮(真)
	按钮1[3].创建(hWnd, "弹出子窗口", 黑月坐标(100, 140), 黑月坐标(80, 28))
	按钮1[3].事件_被单击(注册事件C_取地址(按钮_事件被单击))
	按钮1[4].创建(hWnd, "弹出对话框", 黑月坐标(190, 140), 黑月坐标(80, 28))
	按钮1[4].事件_被单击(注册事件C_取地址(按钮_事件被单击))
	//单选框1[0].事件_被单击(&按钮_事件被单击)
	单选框1[0].创建(hWnd, "单选框1", 黑月坐标(10, 60), 黑月坐标(80, 30))
	单选框1[0].选中(真)
	单选框1[1].创建(hWnd, "单选框2", 黑月坐标(100, 60), 黑月坐标(80, 30))
	单选框1[2].创建(hWnd, "单选框3", 黑月坐标(190, 60), 黑月坐标(80, 30))
	
	工具.创建()
	工具.添加(单选框1[0].取窗口句柄(), "你好大色")
	//选择框1[0].事件_被单击(&按钮_事件被单击)
	选择框1[0].创建(hWnd, "选择框1", 黑月坐标(10, 100), 黑月坐标(80, 30))
	选择框1[1].创建(hWnd, "选择框2", 黑月坐标(100, 100), 黑月坐标(80, 30))
	选择框1[2].创建(hWnd, "选择框3", 黑月坐标(190, 100), 黑月坐标(80, 30))
	选择框1[2].通用事件_鼠标位置被移动(注册事件C_取地址(通用事件_鼠标位置移动))
	标签1[0].创建(hWnd, "我是一个标签", 黑月坐标(10, 140), 黑月坐标(188, 30))
	编辑框1[0].事件_内容被改变(注册事件C_取地址(编辑框事件_内容被改变))
	编辑框1[0].通用事件_按下某键(注册事件C_取地址(编辑框事件_按下某健))
	编辑框1[0].创建(main, "炫语言黑\n月界面-编辑框文本", 黑月坐标(10, 180), 黑月坐标(258, 150),)
	编辑框1[0].垂直居中(真)//黑月坐标(10, 180), 黑月坐标(258, 150)
	//编辑框1[0].文本色(0xFF0000)
	分组框1.创建(hWnd, "我是分组框", 黑月坐标(10, 340), 黑月坐标(258, 100))
	组合框1.创建(分组框1.取窗口句柄(), "", 黑月坐标(10, 30), 黑月坐标(100, 100))
	组合框1.加入项目("组合框1", 101)
	组合框1.加入项目("组合框2", 102)
	组合框1.加入项目("组合框3", 103)
	组合框1.置现行选中项(0)
	进度条1.创建(分组框1.取窗口句柄(), "", 黑月坐标(10, 60), 黑月坐标(100, 20))
	进度条1.位置(50)
	选择夹1.创建(hWnd, "", 黑月坐标(280, 20), 黑月坐标(500, 530))
	滑块条1.创建(分组框1.取窗口句柄(), "", 黑月坐标(120, 30), 黑月坐标(125, 28))
	滑块条1.位置(50)
	滚动条1.创建(分组框1.取窗口句柄(), "", 黑月坐标(120, 60), 黑月坐标(125, 18))
	
	编辑框1[1].创建(main,, 黑月坐标(10, 450), 黑月坐标(100, 26),, 窗口风格_可停留焦点 | 编辑框_数字输入)
	如果 (编辑框1[1].内容()!= "")
		调试输出(编辑框1[1].内容())


	调节器1.创建(hWnd, "", 黑月坐标(120, 450), 黑月坐标(80, 26),, 调节器_关联窗口右边 | 调节器_响应上下键 | 调节器_超过边界循环 | 调节器_置关联窗口文本)
	调节器1.关联控件(编辑框1[1])
	IP编辑框1.创建(main, "0", 黑月坐标(130, 450), 黑月坐标(138, 26),, 窗口风格_可停留焦点 | 编辑框_数字输入)
	黑月IP地址 addr
	addr.A段 = 19
	addr.B段 = 168
	addr.C段 = 102
	addr.D段 = 1
	IP编辑框1.置地址(addr)
	热键框1.创建(main, "", 黑月坐标(130, 480), 黑月坐标(138, 26))
	选择框三态1.创建(hWnd, "选择框三态1", 黑月坐标(10, 480), 黑月坐标(100, 26))
	文本型 str = "我们来<a href=\"http://www.baidu.com\">百度一下</a> 不行就 <a href=\"http://cn.bing.com\">必应一下</a> 还不行是你不行"
	超链接框1.创建(main, str, 黑月坐标(5, 515), 黑月坐标(270, 26))
	超链接框1.事件_被单击(注册事件C_取地址(超链接框1_事件_被单击))
	
	面板[0].事件_创建完毕(注册事件C_取地址(选择夹1_创建完毕事件))
	面板[0].创建(选择夹1, "", 黑月坐标(0, 0), 黑月坐标(0, 0))
	面板[1].事件_创建完毕(注册事件C_取地址(选择夹1_创建完毕事件))
	面板[1].创建(选择夹1.取窗口句柄(), "", 黑月坐标(0, 0), 黑月坐标(0, 0))
	选择夹1.插入子夹(面板[0], -1, "按钮", 0, "例程")
	选择夹1.插入子夹(面板[1], -1, "超级列表框", 0, "超级列表框例程")
	返回 0
选择框三态类 选择框三态1
超链接框类 超链接框1
热键框类 热键框1
IP编辑框类 IP编辑框1
调节器类 调节器1
滚动条类 滚动条1
滑块条类 滑块条1
动态数组<面板类> 面板(3)
选择夹类 选择夹1
进度条类 进度条1
组合框类 组合框1
按钮类 按钮1[5]
单选框类 单选框1[3]
选择框类 选择框1[3]
标签类 标签1[2]
编辑框类 编辑框1[2]
分组框类 分组框1
应用程序类 app
窗口类 main
函数 整型 入口函数_窗口() //窗口程序入口函数, 程序启动优先进入此函数

	//调试输出(DPI取缩放值())
	
	app.初始化(模块句柄)
	main.事件_创建完毕(注册事件C_取地址(主窗口_创建完毕事件))
	main.创建(, "炫语言黑月界面类模块-可随意移动-ESC关闭", 黑月坐标(356, 157), 黑月坐标(800, 600))
	//main.创建(, "炫语言黑月界面类模块-可随意移动-ESC关闭",, 黑月坐标(800, 600), 窗口风格_默认)
	//调试输出(DPI取缩放值())
	RECT rc
	#嵌入行 SystemParametersInfo (SPI_GETWORKAREA, 0, &rc, 0);
	//调试输出(rc.左边, rc.上边, rc.右边, rc.下边)

	main.随意移动(真)
	main.Esc关闭(真)
	app.运行(main)
	返回 0

类 我的子窗口
	窗口类 窗口
	按钮类 按钮1
	图片框类 图片框1[2]
	菜单类 菜单_文件, 菜单_单选, 菜单栏
	GP位图类 imgOpen, img
	工具条类 工具条1
	图片组类 图片组1
	状态栏类 状态栏1
	超链接框类 超链接框1
	超链接框模板类<我的子窗口> 超链接框
	GP图像类 tx[2]
	函数 HWND 创建子窗口(HWND hWnd)
		窗口.通用事件_鼠标右键被放开(注册事件CPP_取地址(&我的子窗口::通用事件_鼠标右键放开))
		窗口.创建(hWnd, "我是子窗口",, 黑月坐标(600, 400), 窗口风格_默认 | 窗口风格_可视)
		窗口.事件_菜单被单击(注册事件CPP_取地址(&我的子窗口::main_事件_菜单被单击))
		按钮类 *局部按钮 = new 按钮类
		局部按钮->创建(窗口.取窗口句柄(), "确定(&S)", 黑月坐标(200, 40), 黑月坐标(80, 30))
		按钮1.事件_被单击(注册事件CPP_取地址(&我的子窗口::按钮1_事件被单击))
		按钮1.创建(窗口.取窗口句柄(), "确定(&S)", 黑月坐标(100, 40), 黑月坐标(80, 30))
		图片框1[0].创建(窗口.取窗口句柄(), "确定(&S)", 黑月坐标(20, 110), 黑月坐标(500, 200))
		tx[0].创建自文件("1.gif", 真)
		图片框1[0].图片(tx[0])
		图片框1[0].图片显示方式(图片显示方式_缩放)
		图片框1[1].创建(窗口.取窗口句柄(), "确定(&S)", 黑月坐标(320, 30), 黑月坐标(148, 148))
		tx[1].创建自文件("大图标 (1).png", 真)
		图片框1[1].图片显示方式(图片显示方式_平铺)
		图片框1[1].图片(tx[1])
		
		文本型 str = "我们来<a href=\"http://www.baidu.com\">百度一下</a> 不行就 <a href=\"http://cn.bing.com\">必应一下</a> 还不行是你不行"
		//超链接框1.创建(窗口, str, 黑月坐标(5, 90), 黑月坐标(270, 26))
		//超链接框1.事件_被单击(注册事件CPP_取地址(&我的子窗口::超链接框1_事件_被单击))
		超链接框.创建(窗口, str, 黑月坐标(5, 90), 黑月坐标(270, 26))
		超链接框.置链接ID(0, "123")
		文件类  文件
		文件.打开("图片组.eil")
		字节集  data = 文件.读取到字节集()
		图片组1.创建自字节集(data, 真)
		工具条1.创建(窗口.取窗口句柄(), "", 黑月坐标(10, 10), 黑月坐标(125, 20))
		工具条1.置图片组(图片组1)
		工具条1.置缩进(5)
		工具条1.插入按钮(-1, 100, "新建", 工具按钮_标准按钮, 0, "新建文件")
		工具条1.插入按钮(-1, 101, "打开", 工具按钮_标准按钮, 1, "打开文件")

		动态数组<黑月快捷键信息> 快捷键信息(2)
		快捷键信息[0].ID = 10000  // 这里ID设置和菜单一样，就很方便
		快捷键信息[0].键代码 = 键O
		快捷键信息[0].功能键状态 = 快捷键_键代码 | 快捷键_Ctrl
		
		快捷键信息[1].ID = 10001
		快捷键信息[1].键代码 = 键S
		快捷键信息[1].功能键状态 = 快捷键_键代码 | 快捷键_Ctrl
		快捷键类 快捷键1
		快捷键1.创建(快捷键信息)
		//================ 文件菜单的创建
		菜单_文件.销毁()
		菜单_文件.创建弹出菜单 ()
		菜单_文件.添加项目("打开(&O)\tCtrl + O", 10000)
		菜单_文件.添加项目("保存(&S)\tCtrl + S", 10001)
		菜单_文件.添加分割线 ()
		菜单_文件.添加项目("退出(&X)", 10002)

		imgOpen.创建自文件("打开.png", 假) // 图片尽量分开，不要用同一个变量设置不同地方的图片
		菜单_文件.置项目图标(10000, imgOpen, 假)
	
		img.创建自文件("QQ图片20240717170101.png", 真)
		菜单_文件.置菜单背景图(img)  // 设 置背景图

		//================    菜单_单选的创建
		菜单_单选.销毁()
		菜单_单选.创建弹出菜单 ()
		菜单_单选.添加项目("男", 10003)
		菜单_单选.添加项目("女", 10004)
		菜单_单选.添加项目("未知", 10005)
		菜单_单选.添加分割线 ()
		菜单_单选.添加项目("第二组1", 10006)
		菜单_单选.添加项目("第二组2", 10007)
		菜单_单选.添加项目("第二组3", 10008)
		菜单_单选.单选菜单(0, 0, 2)  // 默认先选中第一个
		菜单_单选.单选菜单(4, 4, 6)  // 默认先选中第二组第一个
		菜单_单选.置菜单背景色(取颜色值RGB(255, 0, 0))
		
		// 最后添加到菜单栏
		菜单栏.销毁()
		菜单栏.创建菜单栏()
		菜单栏.添加弹出菜单(菜单_文件, "文件(&F)")
		菜单栏.添加弹出菜单(菜单_单选, "单选(&R)")
		
		窗口.置菜单(菜单栏)
		窗口.置快捷键(快捷键1)
		
		状态栏1.创建(窗口.取窗口句柄(), "", 黑月坐标(10, 10), 黑月坐标(125, 20))
		状态栏1.加入栏目("我是炫语言", 150)
		状态栏1.加入栏目("项目1")
		返回 窗口.取窗口句柄()
	函数 整型 main_事件_菜单被单击(HWND hWnd, 整型 ID)
		如果 (ID == 10002)
			调试输出("销毁")
			//窗口.销毁()
		否则 (ID == 10000)
			调试输出("打开")
			菜单_文件.选中项目(ID, !菜单_文件.是否选中(ID))
		否则 (ID == 10001)
			调试输出("保存", ID, 菜单_文件.取项目标题(ID))
			菜单_文件.选中项目(ID, !菜单_文件.是否选中(ID))
		返回 0
	函数 空类型 按钮1_事件被单击(HWND hWnd, 整型 ID)
		调试输出(#当前函数, hWnd, ID)
	函数 整型 通用事件_鼠标右键放开(HWND hWnd, short 横坐标, short 纵坐标, 整型 功能键状态)
		POINT pt
		// 获取当前鼠标位置
		#嵌入代码
		GetCursorPos(&pt);
		#嵌入代码_结束
		菜单_文件.弹出菜单(pt.x, pt.y, hWnd)
		返回 0	
	函数 整型 超链接框1_事件_被单击(HWND hWnd, 整型 链接索引, 字符型 *URL, 字符型 *ID)
		调试输出(文本组合("索引：", 链接索引), 文本组合("URL：", URL), ID)
		返回 0
	占位
	函数 事件 空类型 元素事件_被单击(超链接框模板类<我的子窗口> &来源对象, HWND hWnd, 整型 链接索引, 字符型 *URL, 字符型 *ID)  //OnClick
		调试输出(文本组合("索引：", 链接索引), 文本组合("URL：", URL), ID, 来源对象.取链接ID(链接索引))
		占位


// [文档]<炫语言> 在线手册: http://www.xcgui.com/doc
// [视频]<炫语言> 入门教程: https://www.bilibili.com/video/BV1KM411h7KK
//
// [文档]<炫彩界面库> 最新在线文档: http://www.xcgui.com/doc-ui
// [视频]<炫彩界面库> 通用教程: https://www.bilibili.com/video/BV1kA411A71p/
//
// [商城]炫彩资源商城: http://mall.xcgui.com
//
// *新手尽量不要使用指针, 例如: 字符串使用"文本型", 函数参数若要返回值使用引用 "函数名(整型 &输入输出参数)",
//  内存使用"字节集"
//
//  文本型   双字节字符串  =  炫语言默认字符串类型  =  "字符串W"
//  文本型A  单字节字符串  =  易语言字符串类型     =  A"字符串A"
//  utf8字符串  = U"UTF8字符串"
//  A2W()   单字节字符串 转 双字节字符串
//  W2A()   双字节字符串 转 单字节字符串
//  A =  char    =  单字节
//  w =  wchar_t = 双字节 = UNICODE
//  两个文件中结构体类型互相包含导致冲突, 请将结构体定义移动到一个独立文件中
